package com.gyj.user.service;

import com.gyj.common.CommonResult;
import com.gyj.user.model.User;

import java.util.List;

public interface UserService {

    /**
     * 初始化Mysql数据
     */
    public void initData();

    /**
     * 初始化redis数据
     */
    public void redisInitData();

    /**
     * 根据登录名在mysql中查找
     */
    public User findByLoginName(String loginName);

    /**
     * 根据登录名在redis中查找
     */
    public User getUserRedis(String loginName);

    /**
     * 根据昵称在mysql中查找，并添加到redis中
     */
    public String addRedisByNickName(String nickname);

    /**
     * 根据用户昵称获取对象数据，可能多个，如果有直接从redis中取数据，没有则从mysql中然后保存到redis中
     */
    public List<User> getUserListByNickName(String nickname);

    /**
     * redis中存储hash数据
     */
    public CommonResult<Boolean> addUserListByNickNameHash(String nickname);

    public User getUserById(int id);

    /**
     * 根据id查找存储到redis以hash形式
     */
    public User getUserByIdHash(int id);

    /**
     * 更新用户信息后要设置缓存同步，即删除缓存
     */
    public CommonResult<Boolean> updateUser(User user);

    /**
     * 根据用户id删除用户信息后要设置缓存同步，即删除缓存
     */
    public CommonResult<Boolean> deleteUserById(int id);
}
